package app.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 类目信息实体类 - 符合实时数仓设计规范
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CategoryInfo {
    // 业务主键
    private String categoryId;
    private String categoryName;
    
    // 维度层级字段
    private String parentId;
    private String parentName;
    private Integer level;
    private String categoryType;
    private String categoryPath;  // 类目路径，如：/服装/女装/连衣裙
    
    // 聚合度量字段
    private Integer productCount;
    private Double totalSalesAmount;
    private Integer totalSalesVolume;
    private Double avgPrice;
    private Double salesShare;        // 销售占比
    private Double growthRate;
    private Double demandSupplyRatio;
    
    // 实时数仓必需的时间字段
    private Long ts;           // 事件时间戳（毫秒）
    private String stt;        // 窗口开始时间
    private String edt;        // 窗口结束时间
    private String period;     // 统计周期（1h、1d、7d等）
    
    // 数据血缘字段
    private String dataSource; // 数据来源
    private String processTime; // 处理时间
    private Integer version;    // 数据版本
    
    // 排名相关
    private Integer rank;
    private String rankType;   // 排名类型：sales_amount、growth_rate等
}